Go Module
是从Go版本 1.11.1
开始官方提供的包管理工具,用于解决Go项目的包管理及依赖,类似于PHP的 composer
、Nodejs的 npm
。本章节会对 Go Module
的一些常用的实用的命令/设置进行介绍,更详细的介绍请查看官方文档: https://github.com/golang/go/wiki/Modules
关于 go.mod
go.mod
是Go项目的依赖描述文件,该文件主要用来描述两个事情:
- 当前项目名(
module
)是什么。每个项目都应该设置一个名称,当前项目中的包(package
)可以使用该名称进行相互调用。 - 当前项目依赖的第三方包名称。项目运行时会自动分析项目中的代码依赖,生成
go.sum
依赖分析结果,随后go编译器会去下载这些第三方包,然后再编译运行。
我们将之前的 hello world
项目做一些改变,增加一个 go.mod
文件(也可以在项目根目录下使用 go mod init 项目名称
命令初始化项目生成该文件),内容如下:
module my-hello
其中, my-hello
为当前项目的名称,可以随意设置。
就这样简单便完成了项目的 module
初始化。
一般情况下, go.sum
依赖分析文件应当被添加到版本管理中随着 go.mod
文件一起提交。
使用 go.mod
使用 go.mod
意即用 go.mod
进行项目依赖管理。我们有两种 go.mod
的 使用方式: IDE-vgo
和 命令行
方式。以下我们通过下载使用 GoFrame
框架来演示如何使用这两种方式来管理依赖。
如果需要
Goland
IDE支持go.mod
,必须要打开vgo
的支持(包括代码依赖检测)。这两种使用方式的区别仅仅是下载依赖包的方式不同。
使用Goland IDE vgo(推荐)
vgo
是基于 Go Module
规范的包管理工具,同官方的 go mod
命令工具类似。
- 设置
Goland
启用vgo
如果您本地环境已经有 VPN
功能,那么可 以忽略 proxy
的设置。
其中 Proxy
请输入代理地址下载依赖包,如果选择 direct
表示不使用代理。可选择的反向代理地址有:
https://goproxy.cn
https://goproxy.io
https://mirrors.aliyun.com/goproxy/
这里请务必选择一个代理地址输入。
- 手动修改
go.mod
文件如下:
module my-hello
require github.com/gogf/gf latest